package com.eco.fanliapp.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.eco.fanliapp.common.response.ServerResponse;
import com.eco.fanliapp.entity.GoodsTop;
import com.github.pagehelper.PageInfo;

import java.util.HashMap;
import java.util.List;

public interface IGoodsTopService extends IService<GoodsTop>
{

    /**
     * 增加免单商品
     * @param goodsTop
     * @return
     */
   ServerResponse addGoodsTop(GoodsTop goodsTop);

    /**
     * 根据商品id查询商品明细
     * @param goodsId
     * @return
     */
    GoodsTop selectByGoodsId(String goodsId);

    /**
     * 淘宝查
     * @param goodsTop
     * @return
     */
    //ServerResponse<GoodsTop> addGoodsTopByTaoBao(GoodsTop goodsTop);

    /**
     * 查询所有免单商品
     * @return
     */
    ServerResponse<PageInfo> findAll(Integer companyId, Integer currentPage, Integer pageSize);

    /**
     * 根据平台查询商品信息
     * @return
     */
    ServerResponse<List> selectByPlatform(Integer goodsPlatform);

    /**
     *  根据商品Id删除数据库的记录,goods_free
     *
     * @param goodsId
     */
    ServerResponse deleteByGoodsId(String goodsId);

    /**
     *  动态字段,根据商品Id来更新符合条件的数据库记录,goods_free
     *
     * @param record
     */
    ServerResponse<List> updateByPrimaryKeySelective(GoodsTop record);

    /**
     * 根据商品id或者商品名称模糊查询
     * @param goodsIdOrGoodsName
     * @return
     */
    ServerResponse<List> selectByGoodsIdOrGoodsName(String goodsIdOrGoodsName);

 /**
  * 根据平台或关键字查询置顶商品
  * @param goodsPlatform
  * @param keyWord
  * @return
  */

 ServerResponse<PageInfo> selectGoodsTopByKeyWord(Integer companyId, Integer goodsPlatform, String keyWord, Integer currentPage, Integer pageSize);

 /**
  * 根据商品id修改商品置顶状态
  * @param goodsId
  * @return
  */
    ServerResponse<PageInfo> updateGoodsTopStageByGoodsId(String goodsId, Integer goodsTopStage);

 /**
  * 根据商品id批量修改商品置顶状态
  * @param goodsIds
  * @return
  */
    ServerResponse updateGoodsTopStageByGoodsIds(String[] goodsIds, Integer goodsTopStage);

 /**
  * 批量删除商品
  * @param goodsIds
  * @return
  */
 ServerResponse deleteByGoodsIds(String[] goodsIds);



 ServerResponse updateSerial(HashMap<String, Object> hashMap);

 int insertSelective(GoodsTop goodsTop);

 int deleteByGoodsIdReturnInt(String itemid);
}
